import request from "@/utils/request";
import cfg from "@/config/config";

const timeCard = {
  /**
   * 考勤卡主要内容
   * @param param
   */
  findBdKqTimecard: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findBdKqTimecard", param);
  },

  /**
   * 验证有效打卡记录条数是否小于2 如果小于2不可以补出勤
   * @param timeCardDto userSerial 人员ID signBegin signEnd
   * @return
   */
  findktJlCount: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findktJlCount", param);
  },

  /**
   * 个人刷卡记录,个人年假最新记录,个人请假记录
   * @param object date 日期  userSerial 人员ID
   * @return
   */
  findData: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findData", param);
  },

  /**
   * 个人刷卡记录
   * @param timeCardDto signBegin signEnd 日期  userSerial 人员ID  sSwipe 如果等于0  就是没有打卡记录 不用操查询打卡记录
   * @return
   */
  findCardJl: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findCardJl", param);
  },

  /**
   * 个人年假最新记录
   * @param object date 日期  userSerial 人员ID
   * @return
   */
  findNjJl: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findNjJl", param);
  },

  /**
   * 个人请假记录
   * @param object date 日期  userSerial 人员ID
   * @return
   */
  findqingjJl: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findqingjJl", param);
  },

  /**
   * 修改刷卡记录状态
   * @param timeCardDto
   * ID主键 id  打卡状态  punchStatus 识别方式 recognitionWay  用户ID userSerial 日期 date
   * @return
   */
  updateClockStatus: param => {
    return request(
      "post",
      cfg.apiUrl + "api/timeCard/updateClockStatus",
      param
    );
  },

  /**
   * 修改请假记录状态
   * @param timeCardDto
   * ID主键 id  打卡状态  punchStatus 用户ID userSerial 日期 date
   * @return
   */
  updateQingjStatus: param => {
    return request(
      "post",
      cfg.apiUrl + "api/timeCard/updateQingjStatus",
      param
    );
  },

  /**
   * 加班 调休 处理
   * @param timeCardDto
   * id 主键 userSerial 员工ID type 类型 1 表格调休功能  2 统一加班  3 加班有效时长
   * jiabanId 加班类型  1 平时加班 2 周末 3 法定节假日加班
   * overtimeHours 加班时长  restHours 调休时长  startDate 开始日期  endDate 结束日期
   * @return
   */
  savaOvertimeOrRest: param => {
    return request(
      "post",
      cfg.apiUrl + "api/timeCard/savaOvertimeOrRest",
      param
    );
  },

  /**
   * 根据orderId查询总流程
   * @param timeCardDto 加班单ID orderId
   * @return
   */
  findTotalSteps: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findTotalSteps", param);
  },

  /**
   * 根据orderId和operate查询当前审批流程，加班operate: "overtime" ，请假operate: "leave"，补出勤operate: "repair" 
   * @param timeCardDto 单号ID orderId
   * @return
   */
  findSteps: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findSteps", param);
  },

  /**
   * 获取该人员 日期调休年假最新一条请假单号
   * @param object date 日期  userSerial 人员ID
   * @return
   */
  findQingjOrderId: param => {
    return request("post", cfg.apiUrl + "api/timeCard/findQingjOrderId", param);
  },

  /**
   * 身份验证  HR 考勤
   */
  identityVerification: () => {
    return request("post", cfg.apiUrl + "api/timeCard/identityVerification");
  },

  //审批
  doApproval: param => {
    return request("post", cfg.apiUrl + "api/account", param);
  },

  getByIds: param => {
    return request("post", cfg.apiUrl + "api/timeCard/list/byIds", param);
  },
  /**
   * 导出考勤封账数据
   * @param param
   */
  accountOutput(param) {
    return request("post", cfg.apiUrl + "api/account/list/output", param);
  },
  accountCalc(param) {
    return request("post", cfg.apiUrl + "api/account/calc", param);
  },
  //处理加班
  disposeOvertimeRecord: param => {
    return request(
      "post",
      cfg.apiUrl + "api/timeCard/disposeOvertimeRecord",
      param
    );
  },
  /**
   * 根据日期范围获取打卡记录
   * @param params
   */
  getCardRecordByDate(params) {
    return request("get", cfg.apiUrl + "api/card", params);
  }
};

export default timeCard;
